package exception;

/**
 * 使用当前类测试异常的抛出
 */
public class Person {
    private int age;

    public int getAge() {
        return age;
    }

    public void setAge(int age) throws IllegalAgeException {
        if(age<0||age>100){
            /*
                除了RuntimeException及其子类型异常外，剩下的抛出异常时编译器要求
                必须在方法上使用throws声明该异常的抛出通知调用者处理

                RuntimeException是非检查异常:
                当抛出该异常时，编译器不检查是否有处理手段，因为这类异常属于BUG，可通过逻辑
                修复完全规避掉。
             */
//            throw new RuntimeException("年龄不合法");
            throw new IllegalAgeException("年龄不合法");
        }
        this.age = age;
    }
}
